<!DOCTYPE HTML>
<html>
<head>
<title>#UseHook | AutoHotkey</title>
<meta name="description" content="The #UseHook directive forces the use of the hook to implement all or some keyboard hotkeys." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>#UseHook</h1>

<p>强制使用钩子实现全部或部分键盘<a href="../Hotkeys.htm">热键</a>.</p>

<pre class="Syntax"><span class="func">#UseHook</span> <span class="optional">OnOff</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>OnOff</dt>
  <dd>
    <p>指定以下单词之一(如果省略, 默认为 On):</p>
    <p><strong>On</strong>: 将用<a href="_InstallKeybdHook.htm">键盘钩子</a>来实现从这里到下一个 <code>#UseHook OFF</code>(如果有的话) 之间的所有键盘热键.</p>
    <p><strong>Off</strong>: 用默认方法实现热键(不能使用 RegisterHotkey() 时, 才使用键盘钩子).</p>
  </dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>一般情况下, 只要可能都会用 windows API 函数 RegisterHotkey() 来实现键盘热键. 不过在一些情况下, 如果使用<a href="_InstallKeybdHook.htm">键盘钩子</a>可能响应性更好.</p>
<p>切换此指令为 ON 相当于在每个受影响的热键定义中使用 <a href="../Hotkeys.htm#prefixdollar">$ 前缀</a>.</p>
<p>和只在脚本启动时处理一次的所有 # 指令一样, <code>#UseHook</code> 不应该像命令那样放在脚本中(即它不需要被包含在子程序中). 相反, 应该把它放在您希望影响的首个热键标签之前.</p>
<p>默认情况下, 使用<a href="_InstallKeybdHook.htm">键盘钩子</a>的热键不会被 <a href="Send.htm">Send</a> 命令的方法触发. 同样地, 鼠标热键也不会被像 <a href="Click.htm">Click</a> 这样的命令触发, 因为所有的鼠标热键都使用<a href="_InstallMouseHook.htm">鼠标钩子</a>. 一种解决方法是使用 <a href="Gosub.htm">Gosub</a> 直接跳转到此热键的子程序. 例如: <code>Gosub #LButton</code>.</p>
<p><span class="ver">[v1.1.06+]:</span> <a href="_InputLevel.htm">#InputLevel</a> 和 <a href="SendLevel.htm">SendLevel</a> 对 Send 命令是否触发热键和热字串提供了额外的控制功能.</p>
<p>如果脚本中未使用此指令, 那么它会表现的就像此设置为 OFF 那样.</p>
<p>和其他指令一样, #UseHook 不能有条件地执行.</p>

<h2 id="Related">相关</h2>
<p><a href="_InstallKeybdHook.htm">#InstallKeybdHook</a>, <a href="_InstallMouseHook.htm">#InstallMouseHook</a>, <a href="ListHotkeys.htm">ListHotkeys</a>, <a href="_InputLevel.htm">#InputLevel</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 使前两个热键使用键盘钩子.</p>
<pre>#UseHook  <em>; 强制从这里往后的热键使用键盘钩子.</em>
#x::MsgBox, This hotkey will be implemented with the hook.
#y::MsgBox, And this one too.
#UseHook Off
#z::MsgBox, But not this one.</pre>
</div>

</body>
</html>